package com.nowcoder.topic.pointers.middle;

import java.util.Scanner;

/**
 * NC402 包含不超过两种字符的最长子串
 * @author d3y1
 */
public class NC402{
    // 字符种数
    private static final int K = 2;

    public static void main(String[] args) {
        solution();
    }

    /**
     * 贪心+双指针(毛毛虫)
     *
     * 相似 -> NC41 最长无重复子数组            [nowcoder]
     * 相似 -> NC170 最长不含重复字符的子字符串   [nowcoder]
     * 相似 -> NC356 至多包含K种字符的子串       [nowcoder]
     * 相似 -> NC387 找到字符串中的异位词        [nowcoder]
     */
    private static void solution(){
        Scanner in = new Scanner(System.in);
        char[] chars = in.nextLine().toCharArray();

        int n = chars.length;
        if(n <= K){
            System.out.println(n);
            return;
        }

        int result = 0;
        int[] cnt = new int[26];
        int kind = 0;
        // 双指针 毛毛虫
        for(int i=0,j=0; i<=j&&j<n; j++){
            // 贪心
            if(cnt[chars[j]-'a']++ == 0){
                kind++;
            }

            while(kind > K){
                if(--cnt[chars[i++]-'a'] == 0){
                    kind--;
                }
            }

            result = Math.max(result, j-i+1);
        }

        System.out.println(result);
    }
}